package com.bluesky.light.staff;

import java.util.List;

/**
 * 醫療人員在醫療系統中所用到的功能
 * 
 * @author
 * 
 */
public class StaffService {

	/**
	 * 管理UserService 所有方法的對象
	 */
	private static StaffService service = null;

	/**
	 * 
	 */
	StaffService() {
	};

	/**
	 * 在數據庫存取醫護人員個人資料的對象
	 */
	public static StaffDAO dao = new StaffDAO();

	/**
	 * 要用到StaffService時, 調用此方法創建一個StaffService的實例
	 * 
	 * @return
	 */
	public static StaffService getInstance() {
		if (service == null) {
			service = new StaffService();
		}
		return service;
	}

	/**
	 * 獲取數據庫中儲存的醫療人員的個人資料
	 * 
	 * @return
	 */
	public List<Staff> getStaffs() {
		return dao.getStaffs();
	}

	/**
	 * 把醫療人員的個人資料儲存到數據庫
	 * 
	 * @param s
	 */
	public void add(Staff s) {
		dao.add(s);
	}

	/**
	 * @param id
	 */
	public void delete(int id) {
		dao.delete(id);
	}

	/**
	 * 根據醫療人員id刪除一個在數據庫中的用戶資料
	 * 
	 * @param id
	 * @return
	 */
	public Staff loadById(int id) {
		return dao.loadById(id);
	}

	/**
	 * 更新醫療人員的個人資料
	 * 
	 * @param s
	 */
	public void update(Staff s) {
		dao.update(s);
	}

	/**
	 * 修改醫療人員的密碼
	 * @param s
	 */
	public void updatePwd(Staff s) {
		dao.updatePwd(s);
	}

	/**
	 * 調用用戶名和其密碼的驗證機制來判定醫療人員輸入的密碼是否正確
	 * @param username
	 * @param pwd
	 * @return
	 */
	public Staff check(String username, String pwd) {
		return dao.check(username, pwd);
	}
}
